#ifndef _WX_STATLINE_H_BASE_
#define _WX_STATLINE_H_BASE_

// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------

// this defines wxUSE_STATLINE
#include "wx/defs.h"

#if wxUSE_STATLINE

// the base class declaration
#include "wx/control.h"

extern const wxChar wxStaticLineNameStr[];

class wxStaticLineBase : public wxControl {
  public:
    // constructor
    wxStaticLineBase() { }

    // is the line vertical?
    bool IsVertical() const { return ( GetWindowStyle() & wxLI_VERTICAL ) != 0; }

    // get the default size for the "lesser" dimension of the static line
    static int GetDefaultSize() { return 2; }

    // overriden base class virtuals
    virtual bool AcceptsFocus() const { return false; }

  protected:
    // set the right size for the right dimension
    wxSize AdjustSize( const wxSize& size ) const {
      wxSize sizeReal( size );
      if( IsVertical() ) {
        if( size.x == wxDefaultCoord ) {
          sizeReal.x = GetDefaultSize();
        }
      } else {
        if( size.y == wxDefaultCoord ) {
          sizeReal.y = GetDefaultSize();
        }
      }
      return sizeReal;
    }

    virtual wxSize DoGetBestSize() const {
      return AdjustSize( wxDefaultSize );
    }

    DECLARE_NO_COPY_CLASS( wxStaticLineBase )
};

class wxStaticLine : public wxStaticLineBase {
  public:
    wxStaticLine();
    wxStaticLine( wxWindow *parent,wxWindowID id = wxID_ANY,const wxPoint &pos = wxDefaultPosition,
                  const wxSize& size = wxDefaultSize,long style = wxLI_HORIZONTAL,
                  const wxString &name = wxStaticLineNameStr );
    bool Create( wxWindow *parent,wxWindowID id = wxID_ANY,const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize,long style = wxLI_HORIZONTAL,
                 const wxString &name = wxStaticLineNameStr );
    static wxVisualAttributes
    GetClassDefaultAttributes( wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL );
  private:
    DECLARE_DYNAMIC_CLASS( wxStaticLine )
};

#endif // wxUSE_STATLINE

#endif // _WX_STATLINE_H_BASE_
